package com.LachesismStorm.lachesism.member.service;

import com.LachesismStorm.lachesism.core.common.response.ResponsePage;
import com.LachesismStorm.lachesism.member.dto.ConstellationDTO;
import com.LachesismStorm.lachesism.member.vo.*;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.math.BigDecimal;
import java.util.List;

/**
 * @Author lachesism
 * @Date 2024-04-10 16:06
 **/
@Service
public interface YunOService {
    List<String> getEat();

    String getGoldPrice() throws IOException;

    String getAreaCode(String city, String area);

    void addAreaCode(String city, String area, String code);

    List<WeatherVO> getWeather(String code);

    void addWeather(CityWeatherVO cityWeatherInfo);

    ResponsePage<StringInfoVO> getFamilyMotto(Integer pageNum, Integer pageSize);


    List<String> getCatalogInfo();

    ResponsePage<MessageVO> getMessageList(Integer pageNum, Integer pageSize);

    Answer getAnswer();

    ResponsePage<AnimatedCharacters> getAnimatedCharacterList(Integer pageNum, Integer pageSize);
    List<String> getConstellation(ConstellationParam constellationParam);

    void addNote(NoteVO note);

    NoteVO getNote(String code);

    Boolean checkRepeatCode(NoteVO note);

    String uploadFile(MultipartFile file,String code);

    String getFilePath(String code);

    List<NoteVO> getDBFileInfo(Integer type);

    void deleteDBFile(Integer type, Integer id);

    List<GoldPrice> getGoldPriceToday(GoldPrice time);

    List<GoldPrice> getGoldPriceHistory(GoldPrice time);

    BigDecimal getLastPrice(GoldPrice time);

    ResponsePage<ToDoS> getToDoList(ToDoS todos);

    void updateToDos(ToDoS todos);

    void createToDoThing(ToDoS todos);

    List<Bill> getBillList(Bill bill);

    void updateBill(Bill bill);

    Integer addBill(Bill bill);

    List<Pasteboard> getPasteboardList(Pasteboard pasteboard);

    void deletePasteboard(Integer id);

    Integer addPasteboard(Pasteboard pasteboard);

    List<StringInfoVO> getRandomCriminalLaws(Integer type);

    List<StringInfoVO> fuzzyGetCriminalLaw(StringInfoVO keyWord);


    List<Word> getWords();

    List<Word> getWordByKeyword(Word word);

    void scanUpload(MultipartFile file, String sessionId);

    String uploadTempFile(MultipartFile file);

    List<Word> getHousekeepingWiki(StringInfoVO keyWord);

    void addHousekeepingWiki(Word word);

    void addMemorandum(MemorandumVO memorandum);

    void updateMemorandum(MemorandumVO memorandum);

    List<MemorandumVO> getMemorandum(MemorandumVO memorandum);

    List<String> getDailyVideoList();

    List<SysArea> getAreaList();

    List<ConstellationDTO> getConstellationFortune();

    ExtLunar getLunarInfo();

    ResponsePage<SysSuggestions> getSuggestionList(Integer pageNum);

    void addSuggestion(SysSuggestions suggestion);

    void addEat(String food);
}
